EGEsoll - сборник решений задач из ЕГЭ

Задача 10 посадка в зале

Источник: insperia

Download File 1

Добавлено: 08.05.26 13:13

Перейти к решению

Решение

Решение на Python:

from sys import setrecursionlimit

f = open("26.txt")
N, rows, columns = list(map(int, f.readline().split()))

matrix = [[False] * columns for i in range(rows)]

for i in range(N):
    row, column = list(map(int, f.readline().split()))
    matrix[row - 1][column - 1] = True


def process_row(row, column):
    if row + 1 >= rows or column + 1 >= columns:
        return 0
    if matrix[row][column] or matrix[row][column + 1]:
        best_row, best_col = row - 1, column + 1
        return best_row + 1, best_col + 1
    return process_row(row + 1, column)


def process_column(row, column):
    if row + 1 >= rows or column + 1 >= columns:
        return 0
    if matrix[row][column] or matrix[row][column + 1]:
        process_column(row, column + 1)
    else:
        res.append(process_row(row, column))
        process_column(row, column + 1)


res = []
setrecursionlimit(rows * columns)
process_column(0, 0)
print(max(res))  # (9991, 5643)

Внимание! Код занимет 5,5 гигобайт операвтивной памяти.

Ответ: (9991, 5643)

Автор - rubygem17

Объяснение

None

Назад